package com.doit.day04

import com.doit.day03.ScalaOrder

object _07_排序算子 {
  implicit val order: Ordering[ScalaOrder] = new Ordering[ScalaOrder] {
    override def compare(x: ScalaOrder, y: ScalaOrder) = x.price.compare(y.price)
  }
  def main(args: Array[String]): Unit = {
    val list: List[Int] = List(1, 3, 2, 6, 5, 4)

    //sorted
    //隐式方法   比较的东西    这个东西要么是可比较的
    //如果这个东西不是一个可比较的，就需要传一个比较器  只不过这个比较器可以显示的传给他 还可以隐式穿进去
    val newList: List[Int] = list.sorted


    val tuples: List[(Int, String)] = List((1, "zss"), (1, "lss"), (6, "ww"), (2, "hehe"))
    //想让你按照名字进行排序
    /*tuples.sorted(new Ordering[(Int,String)] {
      override def compare(x: (Int, String), y: (Int, String)) = -x._2.compare(y._2)
    }).foreach(println)*/
    //现在我给你一个对象，我想按照对象中的某一个属性去比较
//    tuples.sortBy(_._2)

    //直接去传一个比较规则
    tuples.sortWith((a:(Int,String),b:(Int,String))=>a._2 < b._2)
      .foreach(println)


  }

}
